Google KSM未通过OpenSSL / PKCS#11签署RSA PKCS v1.5,其中包含“不允许将机制0xd用于密钥”

您所在的位置:网站首页 nodejs rsa加密 Google KSM未通过OpenSSL / PKCS#11签署RSA PKCS v1.5,其中包含“不允许将机制0xd用于密钥”

Google KSM未通过OpenSSL / PKCS#11签署RSA PKCS v1.5,其中包含“不允许将机制0xd用于密钥”

#Google KSM未通过OpenSSL / PKCS#11签署RSA PKCS v1.5,其中包含“不允许将机制0xd用于密钥” | 来源: 网络整理| 查看: 265

我们正在尝试使用生成并存储在HSM中的私钥建立mTLS连接。我们正在使用Google KMS进行HSM部分。我们的应用程序是一个Nodejs应用程序,它使用axios来发出请求,我们配置底层openssl / pkcs#11接口如下:

httpsAgent = new Agent({ privateKeyEngine: 'pkcs11', privateKeyIdentifier, cert: fullCert })

这在我们的开发设置中运行良好,我们有一个使用2048位RSA密钥的LetsEncrypt证书,使用RSA-PSS作为签名算法。我们将从certbot获得的密钥导入HSM,选择rsa-sign-pss-2048-sha256作为其签名算法,并使用ASYMMETRIC_SIGNING作为密钥用途。但是现在在生产中,我们需要使用来自特定CA的证书(不要问)。我们直接在HSM中生成了一个prod密钥(因此我们无法提取私钥),使用OpenSSL为CA生成CSR,但注意到他们不接受使用RSA-PSS的CSR。我们不得不将签名算法降级到PKCS v1.5,以便CA接受CSR。CA接受了CSR,签署了证书,我们将所有设置与我们的开发设置完全相同:但是,我们现在在尝试建立连接时会得到以下错误:

module:pkcs11_private_encrypt:Mechanism invalid:p11_rsa.c:116

此外,KMS integration by Google还记录以下内容:

returning 0x68 from C_SignInit due to status FAILED_PRECONDITION: at preconditions.cc:47: mechanism 0xd is not permitted for key returning 0x70 from C_SignInit due to status INVALID_ARGUMENT: at crypter_ops.cc:62: mechanism 0x3 is not valid for operation sign

现在,我不是一个真正的密码学Maven,但我的理解是:

如果我使用“2048位RSA密钥PKCS#1 v1.5填充-SHA 256摘要”作为Google KMS中密钥的算法,并且我能够使用OpenSSL成功生成CSR,那么与使用“2048位RSA密钥PSS填充-SHA 256摘要”相比,这是否应该同样有效?

我们使用的是Node v16,Debian 11.6 with OpenSSL 1.1.1n。我尝试过升级PKCS#11 engine to the latest version as well,但没有效果。是否需要设置任何标志或配置,以便Node/OpenSSL知道要使用哪种机制?OpenSSL报告该引擎支持RSA_PKCS。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3